记录termux编译安装nginx遇到的错误

您所在的位置:网站首页 编译安装gcc mrtm 记录termux编译安装nginx遇到的错误

记录termux编译安装nginx遇到的错误

2023-06-04 05:40| 来源: 网络整理| 查看: 265

image.png

termux是有nginx的,但是我想要添加一个rtmp的模块,所以需要自己编译添加模块

编译环境

image.png

termux版本:二开版本zeroTermux-0.117.13 nginx: 1.6.3 nginx-rtmp-module: 1.2.2 openssl: 1.0.2u pcre: 8.39 zlib: 1.2.11 问题 GCC

一开始是遇到GCC问题

configure检查无法检测到GCC

后面我就安装了GCC了:安装教程

结果没有用上就很尴尬

宏定义错误

这个就是上面图片的错误,这个错误一直存在,百度了好多篇都没用,最后一篇在这里,但是不知道为什么我进去好难这里

src/event/modules/ngx_epoll_module.c:401:6: error: token is not a valid binary operator in a preprocessor subexpression #if (NGX_READ_EVENT != EPOLLIN|EPOLLRDHUP) ^~~~~~~~~~~~~~ src/event/ngx_event.h:400:29: note: expanded from macro 'NGX_READ_EVENT' #define NGX_READ_EVENT (EPOLLIN|EPOLLRDHUP) ^~~~~~~ /data/data/com.termux/files/usr/include/linux/eventpoll.h:28:36: note: expanded from macro 'EPOLLIN' #define EPOLLIN (__force __poll_t) 0x00000001 ~~~~~~~~~~~~~~~~~~ ^ src/event/modules/ngx_epoll_module.c:408:6: error: token is not a valid binary operator in a preprocessor subexpression #if (NGX_WRITE_EVENT != EPOLLOUT) ^~~~~~~~~~~~~~~ src/event/ngx_event.h:401:28: note: expanded from macro 'NGX_WRITE_EVENT' #define NGX_WRITE_EVENT EPOLLOUT ^~~~~~~~ /data/data/com.termux/files/usr/include/linux/eventpoll.h:30:37: note: expanded from macro 'EPOLLOUT' #define EPOLLOUT (__force __poll_t) 0x00000004 ~~~~~~~~~~~~~~~~~~ ^ 2 errors generated. make[1]: *** [objs/Makefile:822: objs/src/event/modules/ngx_epoll_module.o] Error 1 make[1]: Leaving directory '/data/data/com.termux/files/home/code/ngnix/nginx-1.6.3' 复制代码

里面提到了这样搞:我选择直接修改 eventpoll.h ,将报错中提到的宏常量前面的修饰删掉,这个报错解决。

这个确实可以搞定了,好用

werror

image.png

这是一个警告,但是被GCC当成了是错误,所以make就停下了

这个只要修改objs/Makefile 文件里面

image.png

把这个-Werror删除就可以了

image.png

或者使用./configure --help查看有没有--disable-werror

有一开始在configure最后面添加一个 --disable-werror

image.png

找不到符号 crypt

image.png

ld.lld: error: undefined symbol: crypt >>> referenced by ngx_user.c:75 (src/os/unix/ngx_user.c:75) >>> objs/src/os/unix/ngx_user.o:(ngx_libc_crypt) ld.lld: error: undefined symbol: glob >>> referenced by ngx_files.c:366 (src/os/unix/ngx_files.c:366) >>> objs/src/os/unix/ngx_files.o:(ngx_open_glob) ld.lld: error: undefined symbol: globfree >>> referenced by ngx_files.c:411 (src/os/unix/ngx_files.c:411) >>> objs/src/os/unix/ngx_files.o:(ngx_close_glob) clang-16: error: linker command failed with exit code 1 (use -v to see invocation) make[1]: *** [objs/Makefile:264: objs/nginx] Error 1 make[1]: Leaving directory '/data/data/com.termux/files/home/code/ngnix/nginx-1.6.3' make: *** [Makefile:8: build] Error 2 复制代码 找不到符号 crypt 这个搞不定,😢 希望有大佬看到可以说一下是为什么

我已经转向向已经存在的nginx添加模块,还是要记得删除werror这个问题

这个在termux中就一个问题,也会出现

ld.lld: error: undefined symbol: crypt

但是只要把--with-ld-opt='-L/data/data/com.termux/files/usr/lib -Wl,-rpath=/data/data/com.termux/files/usr/lib -fopenmp -static-openmp -Wl,--enable-new-dtags -Wl,--as-needed -Wl,-z,relro,-z,now -landroid-glob'

最后面添加一个-lcrypt

变成这样就行了--with-ld-opt='-L/data/data/com.termux/files/usr/lib -Wl,-rpath=/data/data/com.termux/files/usr/lib -fopenmp -static-openmp -Wl,--enable-new-dtags -Wl,--as-needed -Wl,-z,relro,-z,now -landroid-glob -lcrypt'

最后

欢迎关注公众号致心空间:O(∩_∩)O😁

致心空间



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3